using InventoryIssue.Dtos;
using InventoryIssue.ErrorCode;
using MediatR;

namespace InventoryIssue.API.Write.Application.Command.Allocate
{
    /// <summary>
    /// 创建操作记录命令
    /// </summary>
    public class CreateOperationRecordCommand : IRequest<APIResult<int>>
    {
        /// <summary>
        /// 调拨单号
        /// </summary>
        public int AllocateId { get; set; }

        /// <summary>
        /// 操作时间
        /// </summary>
        public DateTime OperationTime { get; set; }

        /// <summary>
        /// 操作人
        /// </summary>
        public string Operator { get; set; } = string.Empty;

        /// <summary>
        /// 操作类型
        /// </summary>
        public string OperationType { get; set; } = string.Empty;

        /// <summary>
        /// 操作描述
        /// </summary>
        public string? OperationDescription { get; set; }

        /// <summary>
        /// 操作前状态
        /// </summary>
        public int? PreviousState { get; set; }

        /// <summary>
        /// 操作后状态
        /// </summary>
        public int? CurrentState { get; set; }

        /// <summary>
        /// 备注
        /// </summary>
        public string? Note { get; set; }
    }
} 